liblfds release 6.1.0 release note
Release date : 31st December 2012
Introduction
Release 6.1.0 is a (long-overdue) maintenance release. Almost no new functionality has been added, but all existing bugs have been fixed.
Upgrade Paths
The only supported upgrade path is from release 6.0.0 to release 6.1.0.
User-Visible Changes
liblfds
- The liblfds abstraction layer now contains abstractions for compiler barriers and processor barriers.
- The method used to inline has changed; all inlining is now static (affecting LFDS610_INLINE define).
- lfds610_abstraction_aligned_malloc has been replaced by lfds610_abstraction_malloc and this lfds abstraction layer function requires only malloc, rather than aligned malloc.
- lfds610_abstraction_aligned_free has been replaced by lfds610_abstraction_free and this lfds abstraction layer function requires only free, rather than aligned free.
- The liblfds abstraction layer is no longer publicly visible in the library.
- lfds610_slist_delete_element has been renamed lfds610_slist_logically_delete_element and now returns int, rather than void, where the return value is 1 if the call deleted the element or 0 if the element had already been deleted.
- lfds610_slist_delete_all_elements has been renamed lfds610_slist_single_threaded_physically_delete_all_elements.
- All data structure now have a lfds610_[data structure]_use function. After a data structure is instantiated, a thread (except for the instantiating thread) must call the lfds610_[data structure]_use function on that instance before using that instance.
- The argument passed to lfds610_abstraction_increment now has a volatile type qualifier.
- The ringbuffer query function is now exported to the shared object.
test
- Added a test for CAS.
- Proper SList and Stack tests (rather than merely workloads).
- The iteration argument now works on non-x64 platforms.
- The benchmark option now supports the iteration argument.
User-Invisible Changes
liblfds
- Compiler and processor barriers added.
- The abstraction layer now inlines correctly (hat-tip to "Codeplug").
- Valgrind clean (hat-tip to "jd").
- Register starvation with shared object builds fixed.
- All hand-written ARM assembly code replaced with GCC intrinsics.
- All hand-written Intel assembly code (except for contigious double-word compare-and-swap) replaced with GCC intrinsics.
test
- Thread affinity added to the Linux thread starter function.
Known Issues
liblfds
No known issues.
test
No known issues.